<?php

 /**
  * ---------------------------------------------------------------
  * CURSO CONTROLADOR
  * ---------------------------------------------------------------
  * Esta es la clase Controlador curso, contiene la invocación a todas las vistas 
  * para realizar las funciones ligadas a curso
  */
 class curso extends CI_Controller {



     /**
      * ---------------------------------------------------------------
      * CONSTRUCTOR
      * ---------------------------------------------------------------
      * Este es el constructor, el cual incluye la libreria url que es indispensable 
      * :]
      */
     public function __construct() {
         parent::__construct();
         $this->load->helper("url");
         $this->load->library("session");

         if (!$this->estas_dentro())
             redirect(base_url());

     }




     /**
      * ---------------------------------------------------------------
      * PANTALLA
      * ---------------------------------------------------------------
      * Index pantalla...
      * 
      * @link base_url()/index.php/alumno
      * @author Sergio Morlán Páramo
      */
     public function index() {
         redirect(site_url("jefatura"));

     }




     /**
      * ---------------------------------------------------------------
      * PANTALLA E INTERCAMBIO (BUSINESS)
      * ---------------------------------------------------------------
      * Formulario de registro y validaciones ... 
      * Muestra el formularion necesario para realizar el registro de curso
      * :]
      * @author Sergio Morlán Páramo
      * @link base_url()/index.php/curso/agregar
      */
     public function agregar() {
         $this->load->helper("form");
         $this->load->library("form_validation");
         $this->load->library("utils/fecha");
         $form_valido = FALSE;


         // Si es que se realiza un envío (presionar submit)
         if ($_POST)
             $form_valido = $this->validaciones();

         // Si ocurrio algun error de validación regresamos al formulario
         if (!$form_valido) {
             $data = array(
                       "titulo" => "Nuevo Curso",
                       "fecha" => $this->fecha->getFecha(),
                       "menu" => "menu_jefatura",
                       "contenido" => "jefatura/curso/curso_agregar"
             );
             $this->load->view("plantilla/plantilla_unam", $data);
         } else {
             $this->intentar_agregar();
         }

     }




     /**
      * ---------------------------------------------------------------
      * INTERCAMBIO (BUSINESS)
      * ---------------------------------------------------------------
      * Validación de formulario ...
      * Vamos a realizar las validaciones necesarias del lado del servidor, la información
      * sobre estos metodos se encuentra en la documentación de codeigniter
      * 
      * @access private
      * @return boolean 
      * @author Sergio Morlán Páramo
      */
     private function validaciones() {

         // Validaciones generales
         $this->form_validation->set_rules("curso_nombre", "Nombre de Curso", "required|max_length[90]|trim|xss_clean");
         $this->form_validation->set_rules("curso_descripcion", "Descripción", "required|max_length[255]|trim|xss_clean");
         $this->form_validation->set_rules("curso_area", "Área de Estudio", "max_length[90]|trim|xss_clean");
         $this->form_validation->set_rules("curso_costo", "Costo", "required|max_length[10]|trim|xss_clean");
         $this->form_validation->set_rules("curso_duracion", "Duración", "required|max_length[5]|trim|xss_clean");


         // Formato de wrapper para los mensajes de error
         $this->form_validation->set_error_delimiters("<div class='error_form_validation'>", "</div>");

         // Personalización de mensajes
         $this->form_validation->set_message("required", "Debe introducir el campo %s");
         $this->form_validation->set_message("alpha", "El campo %s no admite caracteres numericos");
         $this->form_validation->set_message("min_length", "El campo %s debe ser de por lo menos %s caracteres");
         $this->form_validation->set_message("exact_length", "El campo %s debe tener exactamente %s caracteres");
         $this->form_validation->set_message("valid_email", "Debe escribir un formato de correo v&aacute;lido");
         $this->form_validation->set_message("numeric", "Debe introducir solo numeros en el campo %s");
         $this->form_validation->set_message("integer", "Debe introducir solo numeros en el campo %s");
         $this->form_validation->set_message("matches", "Los emails no son iguales");

         // Retorno el resultado de la validación
         return $this->form_validation->run();

     }




     /**
      * ---------------------------------------------------------------
      * INTERCAMBIO (BUSINESS)
      * ---------------------------------------------------------------
      * Vamos a intentar registrar curso, tendremos que hacer ciertas validaciones en 
      * Si todos los formatos son correctos se eviarán atributos llamando al modelo_alumno 
      * 
      * @access private
      * @author Sergio Morlán Páramo
      */
     private function intentar_agregar() {
         // Si no existe ningún envio por POST redireccionamos
         if (!$_POST)
             redirect(site_url("curso/agregar"));

         // Carga dek nideki
         $this->load->model("model_curso");

         // Se intenta registrar
         if ($this->model_curso->agregar()) {
             redirect(site_url("jefatura"));
         } else {
             // En caso de un error OJO muestra mensaje error de MySQL
             show_error($this->model_curso->get_errormensaje(), 500, $this->model_curso->get_errorcodigo());
         }

     }




     /**
      * ---------------------------------------------------------------
      * INTERCAMBIO (BUSINESS)
      * ---------------------------------------------------------------
      * Vamos a verificar que el usuario realmente haya iniciado sesión ;]
      * 
      * @access private
      * @return boolean
      * @author Sergio Morlán Páramo
      */
     private function estas_dentro() {
         if ($this->session->userdata("J_SESION"))
             return TRUE;

     }




     /**
      * Método que muestra la lista de apertura
      * @author	Jonathan Ruiz
      * @link	http://localhost/siacomm/index.php/admin/lista_apertura

       public function lista_apertura() {
       //Cargando idioma
       $idioma = $this->config->item('language');
       $this->lang->load('opening', $idioma);

       //Cargando Helpers
       $this->load->library('utils/tableds');

       //Generando parametros de la vista
       $parametros_vista = array(
       'titulo' => 'Apertura',
       'fecha' => $this->fecha->getFecha(),
       'menu' => 'menu_inicio',
       'main_content' => 'jefatura/lista_apertura'
       );

       //Cargando modelo
       //$this->load->database();
       $this->load->model('Model_apertura');
       $query = $this->Model_apertura->get_lista_apertura();

       //Generando lista
       $plantilla_apertura = array(
       'table_open' => '<table border="1" class="tabla_lista">'
       );

       $titulos_tabla = array(
       $this->lang->line('opening_list_title_group'),
       $this->lang->line('opening_list_title_signature'),
       $this->lang->line('opening_list_title_professor'),
       $this->lang->line('opening_list_title_classroom'),
       $this->lang->line('opening_list_title_slot'),
       $this->lang->line('opening_list_title_period'),
       $this->lang->line('opening_list_title_startdate'),
       $this->lang->line('opening_list_title_enddate'),
       $this->lang->line('opening_list_title_status')
       );

       //Llenando tabla
       $tabla = $this->tableds->fill($query, $plantilla_apertura, $titulos_tabla);

       $parametros_vista["tabla_apertura"] = $tabla;

       //$this->db->close();
       //Cargando vista
       $this->load->view('template_general', $parametros_vista);

       }


      */
 }

 